package com.atwulidun.mediator17;

import java.util.HashMap;
import java.util.Map;

// 中介者抽象类
public abstract class Mediator {
    // 维护一个Colleague实现类对象Map
    protected Map<String,Colleague> nations;

    public Mediator() {
        nations = new HashMap<>();
    }

    // 各个Colleague实现类对象实现交互的方法
    // 即接收到来自colleague的msg消息
    public abstract void communicate(String des,String msg);
}

// 中介者抽象类的子类：联合国类
class UNMdeiator extends Mediator {
    @Override
    // des为对某个国家的描述，msg为该国家所发送的消息
    public void communicate(String des, String msg) {
        if ("中国".equals(des)) {
            // 中国发来消息，让韩国接收消息，需要从Map中获取韩国对象
            nations.get("韩国").receiveMsg(msg);
        } else if ("韩国".equals(des)) {
            // 韩国发来消息，让日本接收消息，需要从Map中获取日本对象
            nations.get("日本").receiveMsg(msg);
        } else if ("日本".equals(des)) {
            // 日本发来消息，让中国接收消息，需要从Map中获取中国对象
            nations.get("中国").receiveMsg(msg);
        }
    }
}